package com.hncgy.xzf.jdapi.domain.product.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * <p>
 * 商品表
 * </p>
 *
 * @author 不会代码的蜡笔
 * @since 2025-10-31
 */
@Data
@Schema(name = "Products对象", description = "商品表")
public class Products implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description ="商品ID，主键")
    @TableId(value = "product_id", type = IdType.AUTO)
    private Integer productId;

    @Schema(description ="商品名称")
    private String productName;

    @Schema(description ="分类ID，外键")
    private Integer categoryId;

    @Schema(description ="品牌ID，外键")
    private Integer brandId;

    @Schema(description ="主图URL")
    private String mainImage;

    @Schema(description ="子图URL列表，JSON格式")
    private String subImages;

    @Schema(description ="商品描述")
    private String description;

    @Schema(description ="原价")
    private BigDecimal originalPrice;

    @Schema(description ="现价")
    private BigDecimal currentPrice;

    @Schema(description ="成本价")
    private BigDecimal costPrice;

    @Schema(description ="库存数量")
    private Integer stockQuantity;

    @Schema(description ="库存预警值")
    private Integer warningStock;

    @Schema(description ="销量")
    private Integer salesVolume;

    @Schema(description ="状态：on_sale-在售, off_sale-下架, out_of_stock-缺货, pending_review-待审核")
    private String status;

    @Schema(description ="商品标签，逗号分隔")
    private String tags;

    @Schema(description ="商品规格，JSON格式")
    private String specifications;

    @Schema(description ="重量(kg)")
    private BigDecimal weight;

    @Schema(description ="是否热销：0-否, 1-是")
    private Boolean isHot;

    @Schema(description ="是否新品：0-否, 1-是")
    private Boolean isNew;

    @Schema(description ="是否推荐：0-否, 1-是")
    private Boolean isRecommended;

    @Schema(description ="SEO标题")
    private String seoTitle;

    @Schema(description ="SEO关键词")
    private String seoKeywords;

    @Schema(description ="SEO描述")
    private String seoDescription;

    @Schema(description ="创建人ID")
    private Integer createdBy;

    @Schema(description ="创建时间")
    private LocalDateTime createdAt;

    @Schema(description ="更新时间")
    private LocalDateTime updatedAt;
}
